Embodiments disclosed and taught herein relate generally to data centers and, more specifically, to methods and systems for containing a load within a data center.
A data center, in general, is a physical location or facility that houses computing systems for a particular business, industry, governmental entity, or other organization. The computing systems may include, for example, one or more server cells or clusters that perform various functions for the organization. Examples of such functions may include Web site hosting, information storing, business processing, and the like. Other computing systems may also be housed in the data center for performing still other functions. Clients may then access the organization, typically via the Internet for external clients and an intranet for internal clients, to obtain services from the data center.
When one or more computing systems or the entire data center fails or becomes unavailable, service may be disrupted, and the organization's image or brand may suffer. Therefore, many organizations provide redundant computing systems in a second data center that is connected to the first data center over a high-speed network. The second data center typically operates simultaneously with the first data center such that clients may obtain the same services through either data center. The particular data center a client may be assigned to upon accessing the organization may follow a random, round robin, or other suitable process. Thereafter, if one or more computing systems in one data center is unavailable, the client may be automatically redirected to computing systems in the other data center (i.e., a failover situation). This “always-on” or high-availability approach allows the organization to maintain substantially continuous and uninterrupted service to clients.
But simply having multiple data centers may not be sufficient if there are performance issues with the data centers. For example, data centers are typically located far enough away from one another so that a catastrophic event (e.g., fire, explosion, chemical spill, etc.) at one data center does not take down another data center. However, this physical separation may also introduce unnecessary latency, for example, when a client initially assigned to one data center is routed to another data center for service during normal operation (i.e., a non-failover situation). Such routing of service between data centers may additionally increase the potential for disruption of service should either data centers fail relative to routing that is confined to one data center.
Accordingly, what is needed is a way to provide services to clients that optimizes performance during normal operation of the data centers and minimizes potential for disruption of service should one of the data centers fail. More specifically, what is needed is a way to minimize the probability that a client assigned to one data center is unnecessarily routed to another data center for service during normal operation.